iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
Mobile Development

深入Android 物件的認識與應用實踐系列 第 20

[day20]介紹API-實做天氣app(上)

  • 分享至 

  • xImage
  •  

api全名:Application Programming Interface,應用程式介面

為什麼要用到api?

當前端工程師在設計畫面上物件的功能時需要使用到後端資料時,會使用到api做一個介面的連接去抓取特定封包上所需要的資料。
這次我想要介紹一下在練習天氣app時,設定了一個簡單的api去氣象預報資訊開放平台上抓取天氣app介面上所需的所有資料。

得到氣象資訊開放平台的封包

先到氣象資料開放平台https://opendata.cwa.gov.tw/index
我們這次要做的是未來七天台灣各地的天氣預報,所以找到這個選項
image
註冊一下並登入取得授權碼
image
並到點擊資料擷取的選項進入到擷取api的畫面
image
按下try it 輸入剛剛取得授權碼
image
按下execute 一筆筆的資料就顯示出來囉!!!
image

說明Response的資料跟程式

當我們發出了api請求時,伺服器(天氣資訊開放平台後端)會回覆一Response

  • 狀態碼(Status Code)處理結果,常見的有:
    *--200 OK: 請求成功。
    *--404 Not Found: 資源未找到。
    *--500 Internal Server Error: 伺服器錯誤。
    Response Content Type選擇Response格式,這裡想要介紹一下json格式,
    物件(Object):用 {} ,包含由鍵值傳遞的資料 鍵值:鍵對值 在程式裡代表一個class
    陣列(Array):用 [],代表一連串屬於開頭屬性底下的list

image
這裡簡略用黃色刮出了使用到的陣列這張圖很清楚看到每個陣列都包裹著1~複數個物件!
這裡只用藍色框出了parameter這個物件,但其實time、weatherElement、loction都是既是含有複數個屬性的物件所以在撰寫response時,我們要在每個物件({})建立一個class,在有list([])屬性的物件的class裡建立list,寫法是這樣:

public class WeatherResponse {

public Records records;

  public class Records{
      public List<Location> location;

  }
  public class Location{
      public String locationName;
      public List<WeatherElement> weatherElement;
  }

  public class WeatherElement {
      public String elementName;
      public List<Time> time;
  }
  public class Time {
      public Parameter parameter;
  }

  public class Parameter{
      public String parameterName;
      public String parameterUnit;
  }

上一篇
[day19]checkbox+button
下一篇
[day21]API-實用的Retrofit+Rxjava
系列文
深入Android 物件的認識與應用實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言